package com.gengzp.permission.exception;

/**
 * @ClassName PermissionException
 * @Description 权限认证框架业务异常类
 * @Author gengzp
 * @Date 2025/8/14 0:09
 */
public class PermissionException extends RuntimeException {

    /**
     * 异常编码
     */
    private final Integer code;

    /**
     * 私有化构造方法, 禁止外部直接实例化
     *
     * @param code    错误码
     * @param message 异常提示信息
     */
    private PermissionException(Integer code, String message) {
        super(message);
        this.code = code;
    }

    /**
     * 根据传入的错误码和错误信息, 创建一个权限认证失败异常
     *
     * @param message 错误信息
     */
    public static PermissionException get(Integer code, String message) {
        return new PermissionException(code, message);
    }

    public Integer getCode() {
        return code;
    }

}
